#!/bin/bash

#功能：将文件格式的文件名加密
#注意：支持处理文件名带有空格的情况
#测试不通过项：
	#（1）文件名"fdsj 发生较大降幅    飞机凯撒飞机上.mp4"暂时测试未通过

SRC_FILE_TYPE=".mp4"
DES_FILE_TYPE=".XXX.zip"

#传入参数检查
if [ "$1" = "-e" ]; then
    echo "try encry files..."
    mv 88.txt jfjeijljmmjkajsizowjfkf.txt.zip
elif [ "$1" = "-d" ]; then
    echo "try decry files..."
    mv jfjeijljmmjkajsizowjfkf.txt.zip 88.txt
else
    echo "para err,please check your input para!"
    echo "-d decry files"
    echo "-e encry files"
    exit 1
fi

#保存环境变量
SAVEIFS=$IFS

#修改单词分隔符不适用空格
IFS=$(echo -en "\n\b")

file_encry_count=0
file_decry_count=0
file_src_total=0
file_des_total=0

for file in `ls`
do
    if [[ $(echo "$file" | grep $SRC_FILE_TYPE) != "" ]];then      #如果是MP4文件
        file_encry=`echo "$file" | base64`                         #将文件名使用base64加密
        file_decry=`echo "$file_encry" | base64 -d`                #将加密后的文件名使用base64解密
        
        if [ "$1" = "-e" ]; then
            mv "$file_decry" "$file_encry"".XXX.zip"              #使用加密文件名重命名文件
            if [ $? = 0 ]; then
                ((file_encry_count++))                             #加密文件计数
            fi
        fi
    elif [[ $(echo "$file" | grep $DES_FILE_TYPE) != "" ]];then    #如果是加密后的文件后缀名
        file_encry=${file%%$DES_FILE_TYPE*}                        #截取删除后缀
        file_decry=`echo "$file_encry" | base64 -d`                #使用base64解密文件名
        
        if [ "$1" = "-d" ]; then
            mv "$file" "$file_decry"                               #将加密文件名重命名为解密文件名
            if [ $? = 0 ]; then
                ((file_decry_count++))                             #解密文件计数
            fi
        fi
    fi
done

for file in `ls`
do
    if [[ $(echo "$file" | grep ".mp4") != "" ]];then
        ((file_src_total++))
    elif [[ $(echo "$file" | grep ".XXX.zip") != "" ]];then
        ((file_des_total++))
    fi
done

echo $file_encry_count files encry!
echo $file_decry_count files decry!
echo $file_src_total total $SRC_FILE_TYPE files!
echo $file_des_total total $DES_FILE_TYPE files!


IFS=$SAVEIFS

